﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Model.ModelForJD
{
    /// <summary>
    /// 统一下单接口参数实体
    /// </summary>
    public class SubmitOrderParamForJD
    {
        /// <summary>
        /// token码
        /// </summary>
        public string token { get; set; }
        /// <summary>
        /// 第三方订单单号
        /// </summary>
        public string thirdOrder { get; set; }
        /// <summary>
        /// [{"skuId":商品编号, "num":商品数量,"bNeedAnnex":true, "bNeedGift":true, "price":100, "yanbao":[{"skuId":商品编号}]}](最高支持50种商品)
        /// bNeedAnnex表示是否需要附件，默认每个订单都给附件，默认值为：true，如果客户实在不需要附件bNeedAnnex可以给false，该参数配置为false时请谨慎，真的不会给客户发附件的;
        /// bNeedGift表示是否需要增品，默认不给增品，默认值为：false，如果需要增品bNeedGift请给true,建议该参数都给true,但如果实在不需要增品可以给false;
        /// price 表示透传价格，需要合同权限，接受价格权限，否则不允许传该值；
        /// </summary>
        public string sku { get; set; }
        /// <summary>
        /// 收货人
        /// </summary>
        public string name { get; set; }
        /// <summary>
        /// 一级地址
        /// </summary>
        public int province { get; set; }
        /// <summary>
        /// 二级地址
        /// </summary>
        public int city { get; set; }
        /// <summary>
        /// 三级地址
        /// </summary>
        public int county { get; set; }
        /// <summary>
        /// 四级地址
        /// </summary>
        public int town { get; set; }
        /// <summary>
        /// 详细地址
        /// </summary>
        public string address { get; set; }
        /// <summary>
        /// 邮编(非必填)
        /// </summary>
        public string zip { get; set; }
        /// <summary>
        /// 座机号(非必填)
        /// </summary>
        public string phone { get; set; }
        /// <summary>
        /// 手机号
        /// </summary>
        public string mobile { get; set; }
        /// <summary>
        /// 邮箱
        /// </summary>
        public string email { get; set; }
        /// <summary>
        /// 备注(非必填)
        /// </summary>
        public string remark { get; set; }
        /// <summary>
        /// 开票方式(1为随货开票，0为订单预借，2为集中开票 )
        /// </summary>
        public int invoiceState { get; set; }
        /// <summary>
        /// 1普通发票2增值税发票
        /// </summary>
        public int invoiceType { get; set; }
        /// <summary>
        /// 发票类型：4个人，5单位
        /// </summary>
        public int selectedInvoiceTitle { get; set; }
        /// <summary>
        /// 发票抬头  (如果selectedInvoiceTitle=5则此字段必须)
        /// </summary>
        public string companyName { get; set; }
        /// <summary>
        /// 1:明细，3：电脑配件，19:耗材，22：办公用品 备注:若增值发票则只能选1 明细
        /// </summary>
        public int invoiceContent { get; set; }
        /// <summary>
        /// 支付方式 (1：货到付款，2：邮局付款，4：在线支付，5：公司转账，6：银行转账，7：网银钱包，101：金采支付)
        /// </summary>
        public int paymentType { get; set; }
        /// <summary>
        /// 使用余额paymentType=4时，此值固定是1其他支付方式0
        /// </summary>
        public int isUseBalance { get; set; }
        /// <summary>
        /// 是否预占库存，0是预占库存（需要调用确认订单接口），1是不预占库存     金融支付必须预占库存传0
        /// </summary>
        public int submitState { get; set; }
        /// <summary>
        /// 增值票收票人姓名(非必填)  备注：当invoiceType=2 且invoiceState=1时则此字段必填
        /// </summary>
        public string invoiceName { get; set; }
        /// <summary>
        /// 增值票收票人电话(非必填)  备注：当invoiceType=2 且invoiceState=1时则此字段必填
        /// </summary>
        public string invoicePhone { get; set; }
        /// <summary>
        /// 增值票收票人所在省(京东地址编码)(非必填)  备注：当invoiceType=2 且invoiceState=1时则此字段必填
        /// </summary>
        public int invoiceProvice { get; set; }
        /// <summary>
        /// 增值票收票人所在市(京东地址编码)(非必填)  备注：当invoiceType=2 且invoiceState=1时则此字段必填
        /// </summary>
        public int invoiceCity { get; set; }
        /// <summary>
        /// 增值票收票人所在县|区(京东地址编码)(非必填)  备注：当invoiceType=2 且invoiceState=1时则此字段必填
        /// </summary>
        public int invoiceCounty { get; set; }
        /// <summary>
        /// 增值票收票人所在地址(非必填)   备注：当invoiceType=2 且invoiceState=1时则此字段必填
        /// </summary>
        public string invoiceAddress { get; set; }
        /// <summary>
        /// 下单价格模式
        /// 1:必需验证客户端订单价格快照，如果快照与京东价格不一致返回下单失败，需要更新商品价格后，重新下单;
        /// </summary>
        public int doOrderPriceMode { get; set; }
        /// <summary>
        /// 客户端订单价格快照
        /// </summary>
        public string orderPriceSnap { get; set; }
        /// <summary>
        /// 大家电配送日期
        /// 默认值为-1，0表示当天，1表示明天，2：表示后天; 如果为-1表示不使用大家电预约日历
        /// </summary>
        public int reservingDate { get; set; }
        /// <summary>
        /// 大家电安装日期
        /// 不支持默认按-1处理，0表示当天，1表示明天，2：表示后天
        /// </summary>
        public int installDate { get; set; }
        /// <summary>
        /// 大家电是否选择了安装
        /// 是否选择了安装，默认为true，选择了“暂缓安装”，此为必填项，必填值为false。
        /// </summary>
        public bool needInstall { get; set; }
        /// <summary>
        /// 中小件配送预约日期
        /// 格式：yyyy-MM-dd
        /// </summary>
        public string promiseDate { get; set; }
        /// <summary>
        /// 中小件配送预约时间段
        /// 时间段如： 9:00-15:00
        /// </summary>
        public string promiseTimeRange { get; set; }
        /// <summary>
        /// 中小件预约时间段的标记
        /// </summary>
        public string promiseTimeRangeCode { get; set; }
    }
}
